from selenium import webdriver
from selenium.webdriver.common.by import By
import time
from pprint import pprint

#常见定位元素的六种方式
class Eleoperat:
    def __init__(self):
        self.driver=webdriver.Chrome()
        self.driver.get('https://www.baidu.com')

    #1.id定位
    def ID(self):
        kw=self.driver.find_element(By.ID,'kw')
        print(kw.get_attribute('outerHTML'))
        print(kw.get_attribute('maxlength'))
        su=self.driver.find_element(By.ID,'su')
        print(su.get_attribute('outerHTML'))

    #2.通过类名定位
    def class_name(self):
        s_ipt=self.driver.find_element(By.CLASS_NAME,'s_ipt')
        print(s_ipt.get_attribute('outerHTML'))

    #3.通过链接文本定位
    def link_text(self):
        news =self.driver.find_element(By.LINK_TEXT,'新闻')
        print(news.get_attribute('outerHTML'))

    #4.通过部分链接文本定位
    def partial_link_text(self):
        hao=self.driver.find_element(By.PARTIAL_LINK_TEXT,'hao')
        print(hao.get_attribute('outerHTML'))

    #5.通过name定位
    def name(self):
        wd=self.driver.find_element(By.NAME,'wd')
        print(wd.get_attribute('outerHTML'))

    #6.通过标签名定位
    def tag_name(self):
            #找一种
        # span=self.driver.find_element(By.TAG_NAME,'span')
        # print(span.get_attribute('outerHTML'))
            #找多个,默认返回一个列表
        spans=self.driver.find_elements(By.TAG_NAME,'span')
        pprint(spans)
        print(len(spans))
        print(spans[2].get_attribute('outerHTML'))
        for i in spans:
            pprint(i.get_attribute('outerHTML'))

    def quit(self,seconds=3):
        time.sleep(seconds)
        self.driver.quit()




if __name__=='__main__':
    eo=Eleoperat()
    # eo.ID()
    # eo.class_name()
    # eo.link_text()
    # eo.partial_link_text()
    # eo.name()
    eo.tag_name()
    eo.quit()




